#ifndef THREADENCODER_H
#define THREADENCODER_H


#include <QObject>
#include <QThread>
#include <QReadWriteLock>
//--------------------------------------------------
//这是读取输入子系统驱动数据的应用程序相关的头文件，不可删除！
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/input.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
//--------------------------------------------------

// 不一定是 event2，可能是其他的
#define ENCODER_DEV "/dev/event1"

//自定义编码器的枚举，仿照QT封装好，方便编程使用
enum encoder {
    forward     = 467 ,     //注意:当 value值是0 的时候，是由这个正转这个“键值”接收的
    back        = 466       // 反转
};




class ThreadEncoder : public QThread
{
    Q_OBJECT
public:
    explicit ThreadEncoder(QObject *parent = 0);
    ~ThreadEncoder();
    int encoder_fd;// the file descriptor of the encoder device
    int  encoderDev(void);

signals:
    void sendEncoderSig(unsigned short newCode, int newVal);

protected:
    virtual void run();

private:
    //CustomToolDefine *m_pCustomInstace;

};





#endif // THREADDEV_H

